import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;


class SpringInjectionNaming {
    
    
public static void main(String[] args) {
BeanFactory factory = new XmlBeanFactory(new FileSystemResource("beans.xml"));
// Obtenemos el mismo bean, pero por varias formas, una por el id (name1)
// O bien por el nombre o alias (name2, name3, name4)
String s1 = (String)factory.getBean("name1");
String s2 = (String)factory.getBean("name2");
String s3 = (String)factory.getBean("name3");
String s4 = (String)factory.getBean("name4");
// Los comparamos, y como la instancia es la misma, son todos true,
System.out.println((s1 == null ? s2 == null : s1.equals(s2)));
System.out.println((s2 == null ? s3 == null : s2.equals(s3)));
System.out.println((s3 == null ? s4 == null : s3.equals(s4)));
String[] x = factory.getAliases("name3");
System.out.println("aliases = " + x[0] + " " + x[1]);
   }

}
